#ifndef __FACTORY_API_H__
#define __FACTORY_API_H__

#include "config_factory.h"

// 测试项
typedef enum
{
    // wifi测试
    WIFI_TEST = 0,
    // 网口测试
    NET_TEST,
    // cat1 测试
    CAT1_TEST,
    // 蓝牙测试
    BLUETOOTH_TEST,
    // 485测试
    UART485_TEST,
    // SD测试
    SD_TEST,
    // 外部flash测试
    EXTERNAL_FLASH_TEST,
    // RTC 测试
    RTC_TEST,
    // 按键测试
    KEY_TEST,
    // LED 测试
    LED_TEST,
    // WIOTA测试
    WIOTA_TEST,
    // GPS授时测试
    GPS_TS_TEST,
    // 同步助手授时测试
    SYNC_TS_TEST,
    // 工厂模式开始
    FACTORY_MODE,
    // 测试结束，最大测试项
    MAX_TEST_PROJECT
} factory_test_type_e;

// 测试状态
typedef enum
{
    // 默认状态
    FACTORY_TEST_DEFAULT = 0,
    // 测试成功
    FACTORY_TEST_SUCCESS = 1,
    // 测试失败
    FACTORY_TEST_FAIL = 2,
} factory_test_state_e;

char *factory_get_key(factory_test_type_e test_type);

void factory_data_init(void);

void factory_data_save(void);

factory_test_t *factory_get_data(void);

int factory_test_result(factory_test_type_e test_type, char *name, factory_test_state_e state, char *remark);

int factory_get_result(factory_test_type_e test_type, char *name, factory_test_state_e *state, char *remark);

#endif